草庐IT

cesium 3dtile

全部标签

【Cesium 历史博客】Cesium 中的图形技术:顶点压缩

GraphicsTechinCesium-VertexCompression|cesium.com顶点压缩概述计算机图形学中一种常见的作法是打包、压缩顶点属性。它增加了顶点着色器中的代码,达到减小内存占用的效果,同时也减少了数据通过总线从CPU到GPU的时间,降低了GPU内存带宽。另一个好处是,可以存放超过顶点属性的最大数量的其他额外顶点属性。减少顶点属性的一种方法是将所有的属性成四维向量,并确保所有的分量充分得到使用。例如,代替如下顶点属性:attributevec3axis;attributefloatrotation;可以用四维向量来代替:attributevec4axisAndRota

如何彻底干掉 Cesium Viewer 中的商标

版权没有,翻版不究。这么做貌似有点不太道德,不过既然官方都开源了,本着学习的目的去研究研究源码未尝不可。虽然百度上有大把通过css手段隐藏商标的代码,但是终究差几分意思。遂决定自己撸。众所周知,Cesium每个月的分发包(或叫发布包、预编译包等)内都有一个Source目录,里头是源代码,模块化系统是ESM,面向对象的实现是ES5。寻找源代码文件Source/Core/Ion.js找到这个Ion.js文件,不难发现这个export出来的类(或构造函数)定义了商标信息和默认的访问token。修改源代码并执行编译打包命令只需修改这个方法:Ion.getDefaultTokenCredit=funct

【Cesium 历史博客】Cesium 中的图形技术:渲染一帧

版权没有,请尊重翻译成果,有翻译错误请指出,规范性转载。@秋意正寒本文通过解读Scene.render方法,观察WebGL在Cesium1.9中如何渲染一帧。读者可以在Scene.render方法处打断点进入调试。由于Cesium专注于可视化地理空间内容,因此多光源的场景并不擅长、不多见,Cesium使用的是传统的前向阴影流水线。Cesium的流水线之所以独特,是因为它使用了多个视锥体来支持大范围的视距,而不需要对z轴进行扭曲变化(这句翻译得不是很好)。起步Cesium把每一帧的生命周期相关的数据存储在一个叫FrameState(参考FrameState.js)的对象中。在帧最开始时,初始化相

【Cesium 历史博客】Cesium 中的图形技术:渲染体系结构

翻译有误请指出,规范性转载。@秋意正寒。原文出处GraphicsTechinCesium-RendererArchitecture|cesium.comCesium是一个WebGL引擎,自WebGL1.0在2011年3月发布后,官方就开始开发了。官方将Cesium的Renderer视为他们自己的第四代渲染器,因为它基于他们的OpenGlobe的经验改进而来。除此之外,还有其他技术人员在AGI的Insight3D和STK的经验。所以说,Cesium的渲染器并不是凭空设计而来。为什么需要一个渲染器?当然,可以把WebGL的调度分散在各处,但是集中在一个渲染器对象中有很多好处:便于使用:渲染器提供了

【Cesium 历史博客】Cesium 中的图形技术:图形结构

翻译有误请指出,规范性转载。@秋意正寒。原文出处:https://cesium.com/blog/2015/05/26/graphics-tech-in-cesium-stackCesium和普通的图形引擎没什么区别,但是当对地球上事务抽象的逻辑层越来越多后,Cesium中的类设计就越来越针对领域化了:虚拟地球。下面要介绍的是Cesium在图形技术栈的设计与普通图形引擎的不同之处。像之前的文章说的一样,最底层是Renderer,它是对WebGL层的封装,用来处理WebGL的资源调配以及绘制命令(DrawCommand)的执行。命令(Command)一般是DrawCall以及其所需要的状态数据(

3dTiles 几何误差详解

转载请注明出处。全网@秋意正寒1.瓦片的调度查阅tileset.json的规范,有一个属性是refine,它有两个值:"ADD"和"REPLACE"。还有另一个属性,叫geometricError,是一个数字。"ADD"的含义是,当这一级瓦片显示不够精细时,渲染下一级瓦片,这一级的瓦片保留继续显示(增加下一级的内容)。"REPLACE"的含义是,当这一级瓦片显示不够精细时,渲染下一级瓦片,这一级的瓦片被销毁(被下一级“替换”)。如何衡量这个“不够精细”?一个很简单的思路是利用观察点(也就是相机)到观察瓦片的距离来判断。这个相机与瓦片的距离超过我指定的某个阈值的时候,就要渲染下一级瓦片,而这一级

3DTiles 1.0 数据规范详解[4.1] b3dm瓦片二进制数据文件结构

原创。转载请规范注明出处:https://www.cnblogs.com/onsummer/p/13252896.html我的git地址:github.com/onsummer目录:https://www.cnblogs.com/onsummer/p/12799366.htmlB3dm,Batched3DModel,成批量的三维模型的意思。倾斜摄影数据(例如osgb)、BIM数据(如rvt)、传统三维模型(如obj、dae、3dMax制作的模型等),均可创建此类瓦片。瓦片文件二进制布局(文件结构)①文件头:占28字节(byte)位于b3dm文件最开头的28个字节,是7个属性数据:属性的官方名称

3DTiles 1.0 数据规范详解[4.2] i3dm瓦片二进制数据文件结构

i3dm,即Instanced3DModel,实例三维模型的意思。诸如树木、路灯、路边的垃圾桶、长椅等具有明显重复特征的数据。这类数据用得较少(笑,现在都喜欢搞BIM、倾斜摄影、精模、白模等)我的git地址:github.com/onsummer转载请规范化转载。出处:@秋意正寒https://www.cnblogs.com/onsummer/p/13252897.html目录:https://www.cnblogs.com/onsummer/p/12799366.html瓦片文件二进制布局(文件结构)与b3dm一致,文件头多了个属性。1.文件头:32bytei3dm的文件头有8个属性,前7个

3DTiles 1.0 数据规范详解[4.3] pnts瓦片二进制数据文件结构

转载请规范声明。@秋意正寒https://www.cnblogs.com/onsummer/p/13252898.html我的git地址:github.com/onsummer目录:https://www.cnblogs.com/onsummer/p/12799366.htmlpnts,即Points,点云的意思。las、xyz数据等均可。瓦片文件二进制布局(文件结构)pnts瓦片文件不内嵌glTF模型,故结构如下:1.文件头:28byte与b3dm是一样的。属性的官方名称字节长类型含义magic4string(或char[4])该瓦片文件的类型,在pnts中是"pnts"version4ui

3DTiles 1.0 数据规范详解[4.4] cmpt瓦片二进制数据文件结构

cmpt,即Component,组合模型的意思。目录:https://www.cnblogs.com/onsummer/p/12799366.html这是前三种的一种更灵活的组织,允许一个瓦片使用cmpt形式,组合多种瓦片,cmpt瓦片可以内嵌任意个、任意类型的瓦片,b3dm、i3dm、pnts均可。所以本文仅简单介绍文件结构。文件二进制布局虚线意味着可选,也就是说,cmpt瓦片可以是空瓦片。①文件头:16byte字段名数据类型描述magicchar[],4byte常量"cmpt".用来指示文件是cmpt瓦片。versionuint32,4bytecmpt的版本。目前是1。byteLength